Apparatus, system and method of authentication

ABSTRACT

A system for identifying a user of a controller includes a controller having one or more sensors configured to detect interaction with the controller by the user and a transmitter configured to transmit telemetry data based on outputs of one or more of the sensors, a user profile unit configured to obtain user profile data for one or more user profiles, where each user profile corresponds to a respective user and the user profile data for a user profile comprises data indicative of one or more characteristic interactions by the user with the controller, and a user profile selection unit configured to select a user profile from the one or more user profiles in dependence upon a degree of match between one or more properties of the transmitted telemetry data and the data of each respective user profile, and configured to modify an output of the system responsive to the selection.

BACKGROUND OF THE INVENTION Field of the Invention

The present disclosure relates to an input device and method.

Description of the Prior Art

The “background” description provided herein is for the purpose ofgenerally presenting the context of the disclosure. Work of thepresently named inventors, to the extent it is described in thisbackground section, as well as aspects of the description which may nototherwise qualify as prior art at the time of filing, are neitherexpressly or impliedly admitted as prior art against the presentinvention.

As internet connectivity for games consoles has become more widespread,it has become increasingly common for users to be able to login to thesame user account as they use on their own console when playing on adifferent console. This is desirable, as a user may be able to tracktheir in-game progress or access their account-specific content evenwhen playing at a friend's house.

However, to log in to their account a user is often required to enter apassword which may be seen by other users. Moreover, once a user hasentered their password, a situation arises where the user remains loggedinto their account unless the user subsequently performs a log outoperation, which can result in other user's potentially obtaining accessto the user's profile. Similarly, in some situations different users mayshare use of a single controller when playing at a friend's house andone user's achievements may be attributed to an account of another userwho is already logged in.

The presently disclosed arrangement seeks to mitigate this problem byproviding a method and an apparatus for determining an identity of auser holding a handheld controller.

SUMMARY OF THE INVENTION

Various aspects and features of the present invention are defined in theappended claims and within the text of the accompanying description andinclude at least an apparatus, system and a method, as well as acomputer program.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete appreciation of the disclosure and many of the attendantadvantages thereof will be readily obtained as the same becomes betterunderstood by reference to the following detailed description whenconsidered in connection with the accompanying drawings, wherein:

FIG. 1 schematically illustrates a computer game processing apparatus;

FIG. 2 schematically illustrates a controller provided with one or moresensors to detect interaction with the controller;

FIG. 3 schematically illustrates another controller provided with one ormore sensors to detect interaction with the controller;

FIG. 4 schematically illustrates hardware to detect interaction with thecontroller;

FIG. 5 schematically illustrates a system for identifying a user of thecontroller;

FIG. 6 schematically illustrates an example of determining one or moreproperties for telemetry data transmitted by the controller;

FIG. 7 schematically illustrates an example of confidence scores forrespective user profiles;

FIG. 8 schematically illustrates an example of a predetermined thresholdcondition used for selecting a user profile;

FIG. 9a schematically illustrates an apparatus to store a model trainedto define a relationship between each user of a plurality of users andone or more properties of data indicative of characteristic interactionsby each user with a controller;

FIG. 9b schematically illustrates a system comprising the user profileunit, the user profile analysis unit, the correlation unit, thecontroller and the user profile selection unit;

FIG. 10 schematically illustrates a flowchart in respect of a method ofidentifying a user of a controller; and

FIG. 11 schematically illustrates a flowchart in respect of a method ofstoring a model trained to define a relationship between each user of aplurality of users and one or more properties of data indicative ofcharacteristic interactions by each user with a controller.

DESCRIPTION OF THE EMBODIMENTS

For clarity of illustration, elements illustrated in the figures havenot necessarily been drawn to scale. Further, where consideredappropriate, reference numerals have been repeated among the figures toindicate corresponding or analogous elements.

The terms “coupled” and “connected,” along with their derivatives, maybe used herein to describe structural relationships between componentsof the system for performing the operations herein. It should beunderstood that these terms are not intended as synonyms for each other.Rather, in particular embodiments, “connected” is used to indicate thattwo or more elements are in direct physical or electrical contact witheach other while “coupled” is used to indicate two or more elements arein either direct or indirect (with other intervening elements betweenthem) physical or electrical contact with each other, and/or that thetwo or more elements co-operate or communicate with each other (e.g., asin a cause an effect relationship).

In the following description, a number of specific details are presentedin order to provide a thorough understanding of the embodiments of thepresent invention. It will be apparent, however, to a person skilled inthe art that these specific details need not be employed to practice thepresent invention. Conversely, specific details known to the personskilled in the art are omitted for the purposes of clarity whereappropriate.

Referring now to the drawings, wherein like reference numerals designateidentical or corresponding parts throughout the several views, FIG. 1schematically illustrates the overall system architecture of a computergame processing apparatus such as the Sony® PlayStation 4® entertainmentdevice. A system unit 10 is provided, with various peripheral devicesconnectable to the system unit 10.

The system unit 10 comprises an accelerated processing unit (APU) 20being a single chip that in turn comprises a central processing unit(CPU) 20A and a graphics processing unit (GPU) 20B. The APU 20 hasaccess to a random access memory (RAM) unit 22.

The APU 20 communicates with a bus 40, optionally via an I/O bridge 24,which may be a discreet component or part of the APU 20.

Connected to the bus 40 are data storage components such as a hard diskdrive 37, and a Blu-ray® drive 36 operable to access data on compatibleoptical discs 36A. Additionally the RAM unit 22 may communicate with thebus 40.

Optionally also connected to the bus 40 is an auxiliary processor 38.The auxiliary processor 38 may be provided to run or support theoperating system.

The system unit 10 communicates with peripheral devices as appropriatevia an audio/visual input port 31, an Ethernet® port 32, a Bluetooth®wireless link 33, a Wi-Fi® wireless link 34, or one or more universalserial bus (USB) ports 35. Audio and video may be output via an AVoutput 39, such as an HDMI port.

The peripheral devices may include a monoscopic or stereoscopic videocamera 41 such as the PlayStation Eye®; wand-style videogame controllers42 such as the PlayStation Move® and conventional handheld videogamecontrollers 43 such as the DualShock 4®; portable entertainment devices44 such as the PlayStation Portable® and PlayStation Vita®; a keyboard45 and/or a mouse 46; a media controller 47, for example in the form ofa remote control; and a headset 48. Other peripheral devices maysimilarly be considered such as a printer, or a 3D printer (not shown).

The GPU 20B, optionally in conjunction with the CPU 20A, generates videoimages and audio for output via the AV output 39. Optionally the audiomay be generated in conjunction with or instead by an audio processor(not shown).

The video and optionally the audio may be presented to a television 51.Where supported by the television, the video may be stereoscopic. Theaudio may be presented to a home cinema system 52 in one of a number offormats such as stereo, 5.1 surround sound or 7.1 surround sound. Videoand audio may likewise be presented to a head mounted display unit 53worn by a user 60.

In operation, the entertainment device defaults to an operating systemsuch as a variant of FreeBSD 9.0. The operating system may run on theCPU 20A, the auxiliary processor 38, or a mixture of the two. Theoperating system provides the user with a graphical user interface suchas the PlayStation Dynamic Menu. The menu allows the user to accessoperating system features and to select games and optionally othercontent.

FIG. 1 therefore provides an example of a computer game processingapparatus in communication with a controller 42, 43 via a wired orwireless communication link (such as a Bluetooth® link), where thecomputer game processing apparatus is configured to execute anexecutable program associated with a computer game in accordance withdata obtained from the controller 42, 43.

FIG. 2 schematically illustrates a controller comprising one or moresensors to detect interaction with the controller. The one or moresensors of the controller 100 may comprise one or more pressuresensitive switches 110, also referred to as buttons, which can bemanipulated by a user's digit when holding the controller 100 in orderto provide user input for controlling execution of an executable programby an information processing device (such as the processing apparatusillustrated in FIG. 1) in communication with the controller 100. Thecontroller 100 according to the present disclosure may comprise anynumber of pressure sensitive switches 110 and in some examples may notcomprise any pressure sensitive switches 110 at all. The location andnumber of pressure sensitive switches is exemplary and differentconfigurations are considered by the present disclosure. In someexamples, the one or more sensors of the controller 100 comprise one ormore thumb sticks 105 which can be displaced from a reference positionto provide user input. Whilst FIG. 2 illustrates a controller 100, suchas the Sony® DualShock 4® controller, it will be appreciated that thecontroller 100 may take a range of different forms.

In embodiments of the present disclosure, a controller comprising one ormore sensors configured to detect interaction with the controller by theuser may be implemented by a handheld controller such as the Sony®PlayStation Move® controller. FIG. 3 schematically illustrates the Sony®PlayStation Move® controller as a further example of a controller 200comprising one or more sensors to detect interaction with the controller200. The controller 200 optionally comprises a tracking object 220 suchas an illuminated ball, which may be used to optically track thecontroller's position and/or orientation in space by using a cameraconnected to a host device apparatus (typically a videogame console suchas the PlayStation 4® or PC, but potentially a server providing astreamed gaming experience). Other controllers may use a differentconfiguration of optical tracking objects, or not include these at all.

While FIGS. 2 and 3 illustrate handheld controller devices, it will beappreciated that other input devices may be appropriate. For example, awristband or armband with sensors that detect position, orientationand/or motion or any other peripheral device comprising at least one ofa gyroscope, an accelerometer and a magnetometer may be used. Otherexamples include a head-mounted display such as the Sony® PlayStationVR®.

Referring now to FIG. 4, in embodiments of the disclosure the controller100, 200 comprises one or more sensors 400 comprising one or more fromthe list consisting of: a gyroscope 410, an accelerometer 420, amagnetometer 430, a pressure sensitive switch 110 and a thumb stick 105.The one or more sensors 400 are each configured to detect interaction bythe user with the controller 100, 200, by detecting one or moreproperties of the controller such as controller position, controllerorientation and/or a closed or open state of a pressure sensitiveswitch, and by generating a corresponding output indicative of the oneor more properties detected by one or more of the sensors. The gyroscopesensor 410 detects an angular velocity of the controller 100; theaccelerometer sensor 420 detects an acceleration of the controller; andthe magnetometer 430 detects magnetic flux density which changes inresponse to motion of the controller. The properties of the signalsgenerated by the sensors 410, 420, 430 can be used for detectinginteractions by the user with the controller 100, 200. Hence, data thatis output by one or more of the sensors 400 can be used to detect acurrent configuration or a status of the controller and changes in theconfiguration of the controller resulting from interaction with thecontroller by the user can thus be detected and used for analysis. Inthis way, manipulations of the controller 100, 200 by the user can bedetected by one or more of the sensors 400 and data output by a sensorprovides an indication of the interaction by the user with thecontroller 100, 200. For example, during use of the controller 100, 200,the user may on average hold the controller 100, 200 at a given meanposition and/or at a given mean orientation and the data that is outputby the accelerometer 420 and/or gyroscope 410 and/or magnetometer 430can provide an indication of the given mean position and/or given meanorientation, respectively, resulting from interaction by the user withthe controller 100, 200.

Generally, the one or more sensors 400 may comprise any sensor known inthe art that is capable of measuring relative changes in a magneticfield or measuring a magnitude and a direction of acceleration in itsown rest frame or measuring an angular velocity and generatinginformation corresponding to a detected change in the measured property.In some examples, the one or more sensors 400 may comprise a pluralityof accelerometer sensors 420, where a first accelerometer is configuredto measure a magnitude of an acceleration with respect to a first axis(e.g. one of an X, Y or Z axis) and a second accelerometer is configuredto measure a magnitude of an acceleration with respect to a second axis.Similarly, the one or more sensors 400 may comprise a plurality ofgyroscope sensors 410, where a first gyroscope is configured to measurean angular velocity with respect to a first axis (e.g. one of an X, Y orZ axis) and a second gyroscope is configured to measure an angularvelocity with respect to a second axis. In this case, outputs of each ofthe plurality of gyroscope sensors 410 and accelerometer sensors 420 canbe combined to provide a measure of a three-dimensional position, pitch,roll and yaw of the controller.

Data indicative of the information generated by the one or more sensorscan be transmitted by a transmitter of the controller 100, 200 and thestate of an executing application at the information processing devicemay be updated in response to changes in the position, orientationand/or motion of the controller or a configuration of one or more of thepressure sensitive switches 110. In some examples where the input device100 does not comprise a pressure sensitive switch 110, user input may beprovided based on an output generated by the accelerometer and/or thegyroscopic sensor included on or within the body 101 of the inputdevice. It will be appreciated that techniques such as magnetism,ultrasound, GPS, picocell/WiFi® radio triangulation, laser or lightinterferometry or other suitable motion tracking techniques localised inthe controller 100, the console (or a separate sensor peripheral) or anycombination of the above may be used to detect interaction with thecontroller. As such, other types of sensor may similarly be consideredin addition to those illustrated in FIG. 4.

The controller 100, 200 comprises at least one transmitter (not shown inthe Figures) configured to transmit data indicative of the data that isoutput by one or more of the sensors 400. The transmitter is configuredto transmit data indicative of the data that is output by the one ormore of the sensors 400 according to a wireless communication comprisingone or more from the list consisting of: Bluetooth®; infrared wireless;and ultra wideband. Other personal area network (PAN) wirelesstechnologies may similarly be considered such as ZigBee or Body areanetwork. The Bluetooth® 1010 wireless communication uses a low powertechnology standard that is capable of transmitting data over distancesof approximately 10 metres using short wavelength radio waves from 2.4GHz to 2.485 GHz. Alternatively or in addition, the transmitter maywirelessly communicate data using infrared wireless 1020 signals toestablish a wireless communication link with another device inline-of-sight. Alternatively or in addition, the transmitter may useultra wideband 1030 wireless communication, which uses direct sequenceultra wide band and multiband orthogonal frequency division multiplexingto transmit information at time intervals. In some examples, thecontroller 100, 200 may communicate the data indicative of the data thatis output by one or more of the sensors 400 to an information processingdevice via a wired connection.

In embodiments of the disclosure the transmitter is configured totransmit telemetry data based on the outputs of one or more of thesensors 400. The telemetry data transmitted by the transmitter comprisesone or more from the list consisting of: controller position data,controller acceleration data, controller angular velocity data,controller orientation data, controller motion data, and data indicativeof a configuration of one or more of the pressure sensitive switches 110of the controller 100, 200. In some examples, the transmitter isconfigured to transmit the telemetry data, wherein the telemetry datacomprises: position data indicative of an X coordinate, Y coordinate andZ coordinate with respect to a real-world space; and orientation dataindicative of pitch, roll and yaw with respect to the real-world space.As such, interactions with the controller 100, 200 can be detected bythe one or more sensors and the transmitter can transmit telemetry dataindicative of the outputs of one or more of the sensors 400. Thetransmitter can be configured to transmit the telemetry data to theinformation processing device 10 as a data stream comprising a pluralityof data packets. The data transmitted by the transmitter comprises timeinformation in the form of a timestamp associated with each sensormeasurement for which data is transmitted. As such, the telemetry datacan provide an indication of a position and orientation of thecontroller 100, 200 as well as changes in position and orientation withrespect to time to provide an indication of controller motion.Alternatively or in addition, the telemetry data can provide anindication of a state of a pressure sensitive switch (closed or openconfiguration), and specifically a duration associated with each stateof the pressure sensitive switch. For example, when the user presses oneof the pressure sensitive switches 110, the telemetry data can providean indication of which switch is pressed and a period of time for whichthe switch is in a closed state.

Optionally for any one of the outputs generated by the one or moresensors 400, raw signal data or partially processed data may betransmitted instead, for additional processing by the informationprocessing unit 10 (e.g. the PlayStation 4®). This may consequentlyreduce the cost, size and/or weight of the input device, and/or increasebattery life and/or enable use of a brighter light source for a similarbattery life, for example.

Referring now to FIG. 5, in embodiments of the disclosure, a system 500for identifying a user of a controller comprises: a controller 100, 200comprising one or more sensors 400 configured to detect interaction withthe controller by the user and a transmitter configured to transmittelemetry data based on outputs of one or more of the sensors; a userprofile unit 510 configured to obtain user profile data for one or moreuser profiles, wherein each user profile corresponds to a respectiveuser and the user profile data for a user profile comprises dataindicative of one or more characteristic interactions by the user withthe controller; and a user profile selection unit 520 configured toselect a user profile from the one or more user profiles in dependenceupon a degree of match between one or more properties of the transmittedtelemetry data and the data of each respective user profile, andconfigured to modify an output of the system responsive to theselection.

The user profile unit 510 and the user profile selection unit 520 may beprovided as part of an information processing apparatus, such as thatillustrated in FIG. 1 or another information processing apparatuscomprising a central processing unit (CPU). The user profile unit 510can obtain the user profile data for the one or more user profiles froma server or from one or more storage components provided as part of theinformation processing apparatus, such as the hard disk drive 37 or theRAM unit 22. Alternatively or in addition, the user profile unit 510 maycomprise a storage medium and the user profile unit 510 may beconfigured to store user profile data for one or more user profiles.

In some examples, a user may play a game executed by the informationprocessing apparatus and the user may operate the controller 100, 200 tocontrol execution of the game. During the user's gameplay, telemetrydata transmitted by the controller 100, 200 and thus received by theinformation processing apparatus may be stored for the user in order togather data for populating the user profile data for the user's profile.In this way, telemetry data transmitted by the controller 100, 200during use by the user may be recorded and associated with the user'sprofile such that the user profile comprises data indicative of one ormore characteristic interactions by the user with the controller 100,200. For example, whilst using the controller 100, 200, telemetry datatransmitted by the controller 100, 200 comprising the controllerposition data, controller orientation data, controller motion dataand/or data indicative of a configuration of one of more of the pressuresensitive switches can be received by the information processing deviceand recorded for the user's profile. As such, the user profile data maycomprise telemetry data indicative of one or more characteristicinteractions by the user with the controller. Alternatively or inaddition, the telemetry data transmitted by the controller 100, 200 maybe subjected to processing in order to determine one or more propertiesor features for the telemetry data so that data (e.g. refined data)resulting from processing the telemetry data can be stored inassociation with the user's profile. By processing the telemetry datatransmitted by the controller 100, 200 to extract one or more propertiesor features from the telemetry data and subsequently storing refineddata for the user's profile, the amount of user profile data stored fora user profile can thus be reduced. For example, the telemetry datatransmitted by the controller 100, 200 may comprise controller positiondata (X, Y, Z) and controller orientation data (pitch, roll, yaw) andthe user profile data may comprise the telemetry data including thecontroller position data and the controller orientation data or the userprofile data may comprise data indicative of one or more propertiesextracted from the telemetry data.

As such, interactions with the controller 100, 200 when used by the usercan be detected, and data indicative of one or more characteristicinteractions by the user with the controller 100, 200 can be stored asuser profile data for the user's profile. For example, a user may onaverage hold the controller 100, 200 with a given orientation (e.g. theleft-hand side of the controller may be slightly elevated with respectto the right-hand side of the controller) or at a given position (e.g.the user's height may mean that the user has a tendency to hold thecontroller at a certain vertical position) and the user profile data forthe user's profile can comprise data indicative of one or more suchcharacteristic interactions by the user. Similarly, the user profiledata for a second user's profile may indicate that on average the seconduser holds the controller 100, 200 at a given vertical position (e.g. amean value of a Y coordinate obtained from the accelerometer 420 mayprovide such an indication) correlated with the second user's physicalheight, and this data may be used for comparison with the telemetry datatransmitted by the controller at any given time to make a determinationof whether the person currently using the controller is the second user.

The telemetry data transmitted by the controller 100, 200 during use bythe user may be processed to determine one or more properties of thetransmitted telemetry data which can be stored in association with theuser's profile. One or more of the properties of the transmittedtelemetry data can thus be used for comparison with one or moreproperties of the data for the user's profile indicative of one or morecharacteristic interactions by the user with the controller 100, 200 todetermine a degree of match between the data for a user's profile andthe transmitted telemetry data for use in determining who is currentlyusing the controller 100, 200. In embodiments of the disclosure, the oneor more properties of the transmitted telemetry data comprise one ormore from the list consisting of: a maximum velocity of the controller;a minimum velocity of the controller; a mean velocity of the controller;a median velocity of the controller; a standard deviation of thevelocity of the controller; a variance of the velocity of thecontroller; a range of the velocity of the controller; a mean positionof the controller; a mean orientation of the controller; a verticalheight difference between the mean position of the controller and aninitial resting position of the controller; and a mean period of timefor which a given pressure sensitive switch of the controller has aclosed configuration when operated by the user.

The telemetry data transmitted by the controller 100, 200 can beobtained by the information processing apparatus 10 comprising the userprofile unit 510 and the user profile selection unit 520, and one ormore of the above mentioned properties can be extracted from thetelemetry data for use when comparing the transmitted telemetry datawith the user profile data. For example, the telemetry data transmittedby the controller 100, 200 may comprise controller position data andcontroller orientation data which can be used to determine motion of thecontroller to allow properties such as the maximum velocity, minimumvelocity or mean velocity of the controller for a given period of time,such as 60 seconds for example. The controller 100, 200 has a givenresting position prior to the user picking up the control 100, 200,(e.g. the previous user of the controller may have left the controlleron a table or the floor) and a vertical height difference between theinitial resting position and the mean position of the controller duringuse by the user having picked up the controller 100, 200 may bedetermined and compared with the user profile data for each user fordetermining the degree of match between a user profile and thetransmitted telemetry data.

The user profile unit 510 can thus be configured to obtain user profiledata for one or more user profiles and the user profile data for eachuser profile can be compared with the telemetry data transmitted by thecontroller 100, 200 in order to calculate a degree of match between theuser profile data and the transmitted telemetry data for each userprofile. The user profile unit 510 can obtain both the user profile datafor one or more user profiles and the transmitted telemetry data, andthe user profile selection unit 520 is configured to select a userprofile from the one or more user profiles based on the degree of matchbetween one or more properties of the transmitted telemetry data and theuser profile data. The transmitted telemetry data and the user profiledata can each be processed to determine one or more properties, and atleast one property of the transmitted telemetry data can be comparedwith at least one property of the data indicative of one or morecharacteristic interactions by the user with the controller to determinea degree of match between the transmitted telemetry data and a userprofile.

Referring now to FIG. 6, an example of determining one or moreproperties for transmitted telemetry data will now be described based ontelemetry data comprising controller position data and controllerorientation data. In this example, the controller 100, 200 comprises onemore of the sensors 400 and the transmitted telemetry data comprises 6respective data types: X-coordinate, Y-coordinate, Z-coordinate, pitch(P), roll (R) and yaw (Y). The telemetry data may be transmitted by thetransmitter, in which a respective timestamp is associated with a set ofdata points comprising a data point for each data type. For example, afirst set of data points may be transmitted at time tA1 with a firsttimestamp and another set of data points may be transmitted at time tA2with a second timestamp. The telemetry data can be considered as a datastream comprising a plurality of time buckets, in which each time bucketcomprises a plurality of sets of data points. In FIG. 6, time bucket Acomprises N sets of data points and time bucket B also comprises N setsof data points, however in some examples the number of sets of datapoints in time bucket A may be different to the number of sets of datapoints in time bucket B. Each time bucket may have an associate timerange (width) in units of seconds such that each time bucket comprises aplurality of sets of data points each having timestamps corresponding totime value within the time range of the time bucket. For example, eachtime bucket may have a width of 500 milliseconds or in some cases awidth of 10 seconds may be used for example, and the transmitter may beconfigured to transmit the sets of data points at a frequency in therange 125 Hz to 600 Hz. Other values are considered by the presentdisclosure.

For each data type (X, Y, Z, P, R or Y) one or more summary propertiescan be determined for each time bucket. In other words, one or moresummary statistics can be calculated for each time bucket using astatistical calculation. For example, for each time bucket, the userprofile selection unit 520 can determine one or more properties for thetelemetry data comprising one or more from the list consisting of: aminimum, a maximum, a mean, a 10th percentile, a 20th percentile, a 30thpercentile, a 40th percentile, a median (50th percentile), a 60thpercentile, a 70th percentile, an 80th percentile, a 90th percentile, avariance, a standard deviation, a standard error of the mean, aninterquartile range, a coefficient of variation, a mean absolutedeviation, and a range. For example, each of the above mentionedproperties may be determined for each of the 6 data types resulting in19 properties for each data type and a total of 114 properties for agiven time bucket (6×19=114). In this way, one or more properties can bedetermined and a comparison between one or more of the propertiesdetermined for the transmitted telemetry data and one or morecorresponding properties determined for the user profile data can beused to determine a degree of match between the transmitted telemetrydata and each user profile. By determining one or more properties foreach time bucket as discussed above and using the properties forcomparison with the user profile data, variations in accelerometerand/or gyroscope measurements can be identified and used for comparisonwith user profile data characteristic of an interaction by a user withthe controller to determine whether a user corresponding to one of theuser profiles is using the controller.

For example, a comparison between a median value of the data pointcorresponding to the X coordinate determined for the transmittedtelemetry data and a median value of an X coordinate determined for theuser profile data for a user may be used to determine the degree ofmatch between the transmitted telemetry data and the data for a userprofile. Similarly, a comparison between the range of the X coordinate,or the Y coordinate or the Z coordinate for the transmitted telemetrydata and the range of the X coordinate, or the Y coordinate or the Zcoordinate for a user's profile data may be used to determine the degreeof match. In some examples, a first user's interaction with thecontroller 100, 200 may be characterised by a vertical height at whichthe user holds the controller 100, 200 and a difference between thelargest vertical height and the smallest vertical height (statisticalrange) of the controller 100, 200. For example, a tall user having longarms may be characterised by a large mean or median vertical height forthe controller 100, 200 and a large range in the vertical height for thecontroller 100, 200. Conversely, a short user having short arms may becharacterised by a small mean or median vertical height for thecontroller 100, 200 and a small range in the vertical height for thecontroller 100, 200. Consequently, the mean or median vertical heightand the range in the vertical height may be useful properties fordistinguishing the tall user from the short user. Similarly, the motionof the controller (change in position and/or orientation with respect totime) may be different for one user compared to another users, as someuser's may have a greater tendency than other to move their arms andhands while using the controller; a first user's controller interactionmay be characterised by a larger mean velocity or a pattern in themotion of the controller, whereas a second user's controller interactionmay be characterised by a smaller mean velocity.

The user profile unit 510 can obtain the user profile data for the oneor more user's and one or more of the above mentioned properties can beselected for each user for comparison with the telemetry data, whereinproperties indicative of a user's characteristic interactions, which candistinguish one user from the plurality of user's, can be selected foreach given user for comparison with the telemetry data. The user profileselection unit 520 can thus be configured to select these propertiesfrom the user's profile data for comparison with the transmittedtelemetry data (transmitted telemetry data is indicative of a currentstatus of the controller 100, 200) when determining a degree of matchfor the user profile with respect to the transmitted telemetry data. Inthis way, one or more properties corresponding to characteristicsinteractions by the user can be selected for comparison with thetransmitted telemetry data and a degree of match can be determined foreach user profile.

In embodiments of the disclosure the user profile selection unit 520 isconfigured to calculate a confidence score for each of the one or moreuser profiles, the confidence score indicative of the degree of matchbetween one or more of the properties of the transmitted telemetry dataand the data of each respective user profile. For each user profile, thedata that is characteristic of an interaction by the user with thecontroller can be compared with the transmitted telemetry data using oneor more of the above mentioned properties, and a confidence score can becalculated for each user profile to provide a numerical indication ofthe degree of match between the transmitted telemetry data and each userprofile. Therefore, a confidence score obtained for each user profile ofthe plurality of user profiles can be used to identify the user profilefor which the data characteristic of interaction by the user with thecontroller has the greatest level of correspondence with the transmittedtelemetry data. In some examples, the confidence score may have a valueranging from 0 to 1 (or 0 to 100), where a smaller value corresponds toa lower degree of match and a higher value corresponds to a higherdegree of match.

FIG. 7 schematically illustrates an example of confidence scoresobtained for user profiles. The user profile selection unit 520 isconfigured to calculate a confidence score for each of the one or moreuser profiles based on the degree of match. In the example shown theconfidence scores each have a value ranging from 0 to 1, where 0indicates a minimum confidence rating and 1 indicates a maximumconfidence rating. As such, the confidence score for user A is 0.95which indicates a high degree of match between the user profile data foruser A and the telemetry data transmitted by the controller. Conversely,the confidence score for user D is 0.08 which indicates a low degree ofmatch between the user profile data for user A and the telemetry datatransmitted by the controller. In this case, the confidence scoresindicate that for the plurality of user profiles compared with thetelemetry data, user profile A has the greatest degree of match and thatthe user corresponding to user profile A is the user that is most likelyto be using the controller.

In embodiments of the disclosure the user profile selection unit 520 isconfigured to select the user profile from the one or more user profilesby determining whether the confidence score for a given user profilesatisfies a predetermined threshold condition. FIG. 8 illustrates anexample of selecting the user profile based on the predeterminedthreshold condition. The user profile selection unit 520 is configuredto obtain (at a step 810) a confidence score for each of the one or moreuser profiles, to select (at a step 820) a confidence score having thegreatest value (highest confidence rating) from the one or moreconfidence scores, to compare (at a step 830) the confidence scorehaving the greatest value with a predetermined threshold condition andto determine (at a step 840) whether the confidence score having thegreatest value satisfies the predetermined threshold condition. When itis determined, at the step 840, that the confidence score having thegreatest value satisfies the predetermined threshold condition, the userprofile selection unit 520 is configured to select (at a step 850), fromthe one or more user profiles, the user profile associated with theconfidence score having the greatest value. When it is determined, atthe step 840, that the confidence score having the greatest value doesnot satisfy the predetermined threshold condition, the process returnsto the step 810 to obtain the one or more confidence scores so that thesteps 820, 830, 840 and 850 can be performed using confidence scores forwhich the values have since been updated in response to the telemetrydata transmitted by the controller 100, 200. As such, at the time whenthe process returns to the step 810 the values for the one or moreconfidence scores may have changed in response to changes in one or moreproperties of the transmitted telemetry data meaning that the degree ofmatch between the transmitted telemetry data and the user profile datafor a user profile, which is reflected in the value of the confidencescore for the user profile, has changed.

For example, the user profile unit 510 may obtain user profile data fora plurality of user profiles and the user profile selection unit 520 canselect the user profile having the greatest degree of match with thetransmitted telemetry data on the basis of which user profile has theconfidence score indicating the greatest level of confidence. Once theuser profile having the greatest value for the confidence score has beenselected, the value of the confidence score is compared with thepredetermined threshold condition. For example, the predeterminedthreshold condition may comprise a threshold value, such as 0.7 (or 70)for example, such that a confidence score having a value less than 0.7(or 70) will not satisfy the threshold condition. The value used for thethreshold value may be set to have a default value such as 0.7 or avalue in the range the range 0.5 to 0.9 may be chosen. Alternatively,each user may be able to select a threshold value for use with theiruser profile. A first user may choose to have a first threshold valuewhich can be used for determining whether their user profile is selectedwhen their user profile has the largest confidence score among theplurality of user profiles, and a second user may choose to have adifferent threshold value which can be used for determining whethertheir user profile is selected when their user profile has the largestconfidence score among the plurality of user profiles.

It will be appreciated that the processing illustrated in FIG. 8 may beperformed periodically such that a periodic assessment of the confidencescores is performed to periodically select the confidence score havingthe greatest value (highest confidence rating) for comparison with thepredetermined threshold condition to determine whether to select a userprofile from the one or more user profiles. For example, at the step 850where the user profile associated with the confidence score having thegreatest value is selected, the process illustrated in FIG. 8 may berepeated after a given period of time (e.g. 5 seconds) has elapsed.

In some examples, when it is determined at the step 840 that theconfidence score having the greatest value does not satisfy thepredetermined threshold condition, instead of returning to the step 810,the process may simply end. For example, when the transmitted telemetrydata indicates that the controller 100, 200 is not in use (e.g.telemetry data indicates that the controller 100, 200 is stationary fora given period of time) instead of returning to the step 810 the processmay end. In this case, the process illustrated in FIG. 8 may be resumedin response to an indication from the telemetry data that the controller100, 200 is in use, such as in response to the user pressing one of thepressure sensitive switches (button press) or in response to a variationin one or more of the properties of the transmitted telemetry data.

The user profile selection unit 520 is configured to select a userprofile from the one or more user profiles in accordance with thetechniques discussed above, and the user profile selection unit 520 canmodify an output of the system 500 responsive to the selection of a userprofile. In embodiments of the disclosure, in response to themodification of the output of the system the user profile selection unit520 is configured to either request the user to confirm the selection ofthe user profile or automatically permit access to the selected userprofile. An output of the system 500 may include a signal output by theuser profile unit 520 or signal output by another processing unit of thesystem 500, and the output of the system 500 can be modified independence upon the selection of the user profile by the user profileselection unit 520. The output of the system 500 may be modified torequest the user to confirm the selection of a user profile in responseto a selection of that user profile by the user profile selection unit520. For example, the output of the system 500 may be modified in amanner such that an image signal is generated for presentation by adisplay unit (such as the display unit 51) to the user so that the usercan respond in order to confirm the selection or reject the selection.Alternatively or in addition, the output of the system 500 may bemodified in a manner such that an audio signal is generated which can beemitted by an audio output unit (e.g. a speaker) possibly included aspart of the display unit or as part of a separate device so that theuser can provide the response for confirming or rejecting the selection.For example, the user profile unit may obtain user profile data for aplurality of user profiles and in the case where the user profileselected by the user profile selection unit 520 does not correspond tothe user that is currently using the controller 100, 200, the user canreject the selection of the user profile. Similarly, for the case wherethe user profile selected by the user profile selection unit 520 doescorrespond to the user that is currently using the controller 100, 200,the user can provide a response to the output of the system 500 toconfirm the selection of the user profile so that the user is logged-into the selected user profile and is permitted to access the userprofile.

The system 500 can be configured, in response to the modification of theoutput of the system 500, to automatically permit access to the userprofile selected by the user profile selection unit 520. As discussedpreviously, the user profile selection unit 520 can select one userprofile from the one or more user profiles on the basis of a degree ofmatch (level of correspondence) between one or more properties of thetransmitted telemetry data and the user profile data for a user profile,and selection of one user profile by the user profile selection unit 520can modify the output of the system 500 in a manner that automaticallygrants access to the user profile such that a log-in operation isautomatically performed for the selected user profile without requiringthe user to provide a password. In this way, the system 500 can identifya user profile which corresponds to the user using the controller 100,200 on the basis of detection of interaction with the controller, andthe user profile for the user using the controller 100, 200 can beselected by the system so that access to the selected user profile canbe automatically permitted. In other words, the techniques of thepresent disclosure can determine whether one of the user profilescorresponds to the person using the controller at any given time usingproperties of telemetry data, so that the person using the controllercan be logged-in to their account when using the controller andlogged-out of their account when ceasing to use the controller withoutrequiring the user to enter a password or perform a log-out operation.

In embodiments of the disclosure the transmitter is configured toperiodically transmit the telemetry data and the user profile selectionunit 520 is configured to periodically select the user profile from theone or more user profiles in dependence upon a periodic analysis of thedegree of match between the transmitted telemetry data and the data ofeach respective user profile. As discussed previously, the controller100, 200 can be configured to periodically transmit the telemetry databased on the outputs of one or more of the sensors 400, and the userprofile selection unit 520 can perform a periodic analysis of thetransmitted telemetry data with respect to the user profile data. Inthis way, for a situation in which a first user uses the controller 100,200 and subsequently passes the controller 100, 200 to another user, thesystem 500 can select the user profile corresponding to the first userwhen the controller 100, 200 is in use by the first user and the system500 can select the user profile corresponding to the other user when thecontroller 100, 200 is in use by the other user. The system 500 may beconfigured to periodically determine the degree of match between a userprofile and the transmitted telemetry data such that the degree of matchis obtained for each user profile every 5 seconds, for example. It willbe appreciated the time period used for periodically determining thedegree of match between a user profile and the transmitted telemetrydata may have any suitable value, such as anywhere within the range 1second to 60 seconds.

In embodiments of the disclosure the controller comprises an electricmotor configured to generate a force for providing a haptic signal tothe user of the controller, and the user profile selection unit isconfigured to select the user profile from the one or more user profilesin dependence upon one or more of the properties of the telemetry datatransmitted by the transmitter within a predetermined period of timefollowing the provision of the haptic signal to the user of thecontroller. The Sony® DualShock 4® controller and Sony® PlayStationMove® controller, for example, each comprise electric motors for drivingan eccentric mass having its centre of mass displaced away from the axisof rotation such that a vibration is transmitted to the body of thecontroller which is perceptible to the user holding the controller. Theelectric motor provided within the body of the controller 100, 200 maytake a variety of different forms, such as a coin vibration motor usingan eccentric rotating mass (ERM). As such, an electric current can besupplied to an electromagnet of the electric motor to drive the electricmotor and thus provide a haptic signal to the user of the controller ata given time. The electric motor may be used to provide a haptic signalto the user of the controller so that a characteristic reaction of auser to such a haptic signal can be used for analysis when attempting toidentify which user profile corresponds to the current user of thecontroller. For each user profile, the data indicative of one or morecharacteristic interactions by the user with the controller mayadditionally comprise data characteristic of impulsive behaviour of theuser in response to such a haptic signal. For example, telemetry datatransmitted by the controller 100, 200 following the generation of ahaptic signal by the electric motor may be recorded (or processed toobtain one or more properties and then recorded) for a user so that theuser profile data for a user profile comprises data indicative of animpulse response by the user to the haptic signal. In this way, theelectric motor can be used to provide a haptic signal to the user of thecontroller, and the telemetry data transmitted within a predeterminedperiod of time (e.g. 1 second) following the provision of the hapticsignal can be used for analysis when performing selection of the userprofile. Different users may react differently to the haptic signal, andproperties of the telemetry data corresponding to the reaction of theuser in response to the haptic signal can be used to distinguish oneuser from another user. For example, a first user may react to thehaptic signal by adjusting the position of the controller 100, 200 to becloser to their body (such that the controller moves in a firstdirection away from the mean position when the controller is held by thefirst user) whereas another user may instead react to the haptic signalby adjusting the position of the controller 100, 200 to be further awayfrom their body (such that the controller moves in a second directionaway from the mean position when the controller is held by the seconduser). Alternatively or in addition, a given user may adjust anorientation of the controller 100, 200 in a specific manner thatuniquely identifies that user from the other users (e.g. the user mayrotate the controller 100, 200 such that the user's reaction ischaracterised by a specific change in the pitch, yaw and/or roll of thecontroller indicated by the transmitted telemetry data).

In embodiments of the disclosure the user profile selection unit 520 isconfigured to input the transmitted telemetry data and the data of eachrespective user profile to a model, and wherein the model is trained todetermine one or more of the properties of the transmitted telemetrydata and to compare one or more of the properties of the transmittedtelemetry data with one or more corresponding properties of the data ofeach respective user profile to determine the degree of match betweenthe transmitted telemetry data and the data of each respective userprofile. During training, data indicative of one or more characteristicinteractions by a user with the controller can be used as an input to amulti-class logistic regression model. Data for individual users can beused during training of the model, and relationships between certainproperties of the data for a given user can be identified as beingcapable of uniquely identifying the given user with respect to theplurality of users. Moreover, using multinomial logistic regressiontechniques, relationships between one or more properties of the dataindicative of one or more characteristic interactions by the user withthe controller, which can be used to distinguish one user from anotheruser, can be identified for each user.

The model is thus trained to obtain a first instance of data (such asthe telemetry data transmitted by the controller) and a second instanceof data (such as the user profile data comprising data characteristic ofinteraction by the user with the controller) as an input, and to comparethe two instances of data by comparing certain properties of the data inorder to determine a degree of match between the two instances of data.For example, the model can be trained to use the transmitted telemetrydata (or data resulting from processing of the transmitted telemetrydata) and the user profile data for a user as an input. For both thetransmitted telemetry data and the user profile data, the model candetermine one or more of the following properties: a minimum associatedwith the controller position data (e.g. minimum X coordinate, minimum Ycoordinate and/or minimum Z coordinate); a minimum associated with thecontroller orientation data; a maximum associated with the controllerposition data; a maximum associated with the controller orientationdata; a mean associated with the controller position data; a meanassociated with the controller orientation data, a 10^(th) percentileassociated with at least one of the controller position data and thecontroller orientation data; a 20^(th) percentile associated with atleast one of the controller position data and the controller orientationdata; a 30^(th) percentile associated with at least one of thecontroller position data and the controller orientation data; a 40^(th)percentile associated with at least one of the controller position dataand the controller orientation data; a median (50^(th) percentile)associated with at least one of the controller position data and thecontroller orientation data; a 60^(th) percentile associated with atleast one of the controller position data and the controller orientationdata; a 70^(th) percentile associated with at least one of thecontroller position data and the controller orientation data; an 80^(th)percentile associated with at least one of the controller position dataand the controller orientation data; a 90^(th) percentile associatedwith at least one of the controller position data and the controllerorientation data; a variance associated with at least one of thecontroller position data and the controller orientation data; a standarddeviation associated with at least one of the controller position dataand the controller orientation data; a standard error of the meanassociated with at least one of the controller position data and thecontroller orientation data; an interquartile range associated with atleast one of the controller position data and the controller orientationdata; a coefficient of variation associated with at least one of thecontroller position data and the controller orientation data; a meanabsolute deviation associated with at least one of the controllerposition data and the controller orientation data; and a rangeassociated with at least one of the controller position data and thecontroller orientation data.

Using one or more of the above mentioned properties (summary statistics)the model can compare one or more of the properties for the firstinstance of data with one of more of the properties for the secondinstance of data to determine a degree of match between the twoinstances of data. By learning relationships between one or more of theproperties and each user so as to learn which properties can be used todistinguish each user, the model can identify for a given user profilewhich properties of the data for the user profile should be used forcomparison with the transmitted telemetry data when determining thedegree of match between the user profile and the transmitted. In aspecific example, for the above mentioned properties, the model mayidentify that a minimum associated with the controller position data, amean associated with the controller orientation data, a 70^(th)percentile associated with at least one of the controller position dataand the controller orientation data, and a range associated with atleast one of the controller position data and the controller orientationdata are useful properties for distinguishing a first user from theother users, because the values associated with each of these respectiveproperties represent a combination that is observed only for the firstuser. However, for a second user the model may identify a different setof the properties for use in distinguishing the second user from theother users. Consequently, the model can receive the transmittedtelemetry data (or data resulting from processing of the transmittedtelemetry data) and the user profile data for a user as an input, andfor each user profile the model can output a confidence score indicativeof the degree of match between the telemetry data and the user profiledata.

In embodiments of the disclosure a user recognition model can be trainedin advance using multiclass logistic regression techniques, and thetrained model can be stored by one or more storage components providedas part of the user profile unit 510 or a storage component such as thehard disk drive 37 or the RAM unit 22 illustrated in FIG. 1. In someexamples the user recognition model may be downloaded from a server.

In embodiments of the disclosure the user profile selection unit isconfigured to input the transmitted telemetry data and the data of eachrespective user profile to the model, and wherein the model is trainedto identify one or more characteristic time-dependent variations in thetransmitted telemetry data capable of distinguishing one user fromanother user and the model is configured to detect whether one or moreof the time-dependent variations are present in the transmittedtelemetry data. In some examples, the model derives one or moreproperties regarding motion of the controller from the transmittedtelemetry data. The model can be trained to identify one or moretime-dependent variations in the data for a user profile whichcharacterise that user's interaction with the controller. For example,small variations (micro variations) in accelerometer and/or gyroscopereadings indicative of certain motions of the controller when operatedby a given user may be identified as being capable of uniquelyidentifying the given user.

Referring now to FIG. 9a , in embodiments of the disclosure an apparatus900 arranged to store a model trained to define a relationship betweeneach user of a plurality of users and one or more properties of dataindicative of characteristic interactions by each user with a controllercomprises a user profile unit 510, 910 configured to obtain user profiledata for a plurality of user profiles, wherein each user profilecorresponds to a respective user and the user profile data for a userprofile comprises data indicative of one or more characteristicinteractions by the user with the controller, a user profile analysisunit 920 configured to determine, for the data indicative of one or morecharacteristic interactions by the user with the controller, a pluralityof properties for each respective user profile, and a correlation unit930 configured to select one or more properties from the plurality ofproperties to produce a set of properties for each user profile, whereineach set of properties uniquely identifies the corresponding userprofile with respect to the plurality of user profiles, wherein thecorrelation unit is configured to store a model defining a set ofproperties for each user profile, each set of properties comprising oneor more properties each having an associated value.

It will be appreciated that the user profile unit 910 illustrated inFIG. 9a has the same functionality as the user profile unit 510illustrated in FIG. 5. The user profile analysis unit 920 can determinea plurality of properties for the data indicative of one or morecharacteristic interactions by the user with the controller for eachuser profile. The plurality of properties determined by the profileanalysis unit 920 may comprise any of the 114 properties discussedpreviously with reference to FIG. 6. Using the plurality of propertiesdetermined for a given user profile, the correlation unit 930 can selectone or more of the properties to produce a set of properties for thegiven user, the set of properties comprising one or more properties andeach property having an associated value. The apparatus 900 can thusobtain user profile data for a plurality of user profiles and produce aset of properties for each user profile such that a first set ofproperties uniquely identifies a first user from the plurality of usersand a second set of properties uniquely identifies a second user fromthe plurality of users. The correlation unit 930 is thus configured tostore a model defining a set of properties for each user profile. Inthis way, telemetry data transmitted by the controller 100, 200 can beprovided as an input for the model and the first set of properties canbe compared with the telemetry data to determine a degree of match forthe first user's profile and the second set of properties can becompared with the telemetry data to determine a degree of match for thesecond user's profile.

The apparatus 900 may be provided as part of an information processingapparatus, such as that illustrated in FIG. 1. Alternatively, or inaddition, the apparatus 900 may be provided as part of a serverapparatus. FIG. 9b illustrates another example of a system 950comprising the user profile unit 510, 910, the user profile analysisunit 920, the correlation unit 93, the controller 100, 200 and the userprofile selection unit 520. In another example, the apparatus 900 can beprovided as part of a server apparatus and the system 500 may comprisean information processing apparatus and a controller situated in theuser's home environment, where the system 500 is in communication withthe apparatus 900 provided as part of a server apparatus. It will beappreciated that different combinations of the apparatus and systemsillustrated in FIGS. 5, 9 a and 9 b are possible.

Referring to FIG. 10, there is provided a schematic flowchart in respectof a method of identifying a user of a controller, comprising:

detecting (at a step 1010), by one or more sensors of a controller,interaction with the controller by the user;

transmitting (at a step 1020) telemetry data based on outputs of one ormore of the sensors;

obtaining (at a step 1030) user profile data for one or more userprofiles, wherein each user profile corresponds to a respective user andthe user profile data for a user profile comprises data characteristicof an interaction by the user with the controller;

selecting (at a step 1040) a user profile from the one or more userprofiles in dependence upon a degree of match between one or moreproperties of the transmitted telemetry data and the data of eachrespective user profile; and

modifying (at a step 1050) an output responsive to the selection.

Referring to FIG. 11, there is provided a method of storing a modeltrained to define a relationship between each user of a plurality ofusers and one or more properties of data indicative of characteristicinteractions by each user with a controller, comprising:

obtaining (at a step 1110) user profile data for a plurality of userprofiles, wherein each user profile corresponds to a respective user andthe user profile data for a user profile comprises data indicative ofone or more characteristic interactions by the user with the controller;

determining (at a step 1120) for the data indicative of one or morecharacteristic interactions by the user with the controller, a pluralityof properties for each respective user profile;

selecting (at a step 1130) one or more properties from the plurality ofproperties to produce a set of properties for each user profile, whereineach set of properties uniquely identifies the corresponding userprofile with respect to the plurality of user profiles; and

storing (at a step 1140) the model defining a set of properties for eachuser profile, each set of properties comprising one or more propertieseach having an associated value.

In so far as embodiments of the disclosure have been described as beingimplemented, at least in part, by software-controlled data processingapparatus, it will be appreciated that a non-transitory machine-readablemedium carrying such software, such as an optical disk, a magnetic disk,semiconductor memory or the like, is also considered to represent anembodiment of the present disclosure.

It will be apparent that numerous modifications and variations of thepresent disclosure are possible in light of the above teachings. It istherefore to be understood that within the scope of the appended claims,the technology may be practised otherwise than as specifically describedherein.

The foregoing discussion discloses and describes merely exemplaryembodiments of the present invention. As will be understood by thoseskilled in the art, the present invention may be embodied in otherspecific forms without departing from the spirit or essentialcharacteristics thereof. Accordingly, the disclosure of the presentinvention is intended to be illustrative, but not limiting of the scopeof the invention, as well as other claims. The disclosure, including anyreadily discernible variants of the teachings herein, defines, in part,the scope of the foregoing claim terminology such that no inventivesubject matter is dedicated to the public.

The invention claimed is:
 1. A system for identifying a user of acontroller, comprising: a controller comprising one or more sensorsconfigured to detect interaction with the controller by the user and atransmitter configured to transmit telemetry data based on outputs ofone or more of the sensors; a user profile unit configured to obtainuser profile data for one or more user profiles, wherein each userprofile corresponds to a respective user and the user profile data for auser profile comprises data indicative of one or more characteristicinteractions by the user with the controller; and a user profileselection unit configured to select a user profile from the one or moreuser profiles in dependence upon a degree of match between one or moreproperties of the transmitted telemetry data and the data of eachrespective user profile, and configured to modify an output of thesystem responsive to the selection, wherein the controller comprises anelectric motor configured to generate a force for providing a hapticsignal to the user of the controller, and the user profile selectionunit is configured to select the user profile from the one or more userprofiles in dependence upon one or more of the properties of thetelemetry data transmitted by the transmitter within a predeterminedperiod of time following the provision of the haptic signal to the userof the controller.
 2. The system according to claim 1, wherein the userprofile selection unit is configured to calculate a confidence score foreach of the one or more user profiles, the confidence score indicativeof the degree of match between one or more of the properties of thetransmitted telemetry data and the data of each respective user profile.3. The system according to claim 2, wherein the user profile selectionunit is configured to select the user profile from the one or more userprofiles by determining whether the confidence score for a given userprofile satisfies a predetermined threshold condition.
 4. The systemaccording to claim 1, wherein in response to the modification of theoutput of the system the user profile selection unit is configured toeither request the user to confirm the selection of the user profile orautomatically permit access to the selected user profile.
 5. The systemaccording to claim 1, wherein the one or more properties of thetransmitted telemetry data and the telemetry data of each respectiveuser profile comprise one or more of: a maximum velocity of thecontroller; a minimum velocity of the controller; a mean velocity of thecontroller; a median velocity of the controller; a standard deviation ofthe velocity of the controller; a variance of the velocity of thecontroller; a range of the velocity of the controller; a mean positionof the controller; a mean orientation of the controller; a verticalheight difference between the mean position of the controller and aninitial resting position of the controller; and a mean period of timefor which a given pressure sensitive switch of the controller has aclosed configuration when operated by the user.
 6. The system accordingto claim 1, wherein the transmitted telemetry data and the data of eachrespective user profile comprises position data and orientation data,and for at least one of the position data and the orientation data theone or more properties of the transmitted telemetry data and the data ofeach respective user profile comprise one or more properties of: aminimum; a maximum; a mean; a 10^(th) percentile; a 20^(th) percentile;a 30^(th) percentile; a 40^(th) percentile; a median; a 60^(th)percentile; a 70^(th) percentile; an 80^(th) percentile; a 90^(th)percentile; a variance; a standard deviation; a standard error of themean; an interquartile range; a coefficient of variation; a meanabsolute deviation; and a range.
 7. The system according to claim 1,wherein the one or more sensors comprise at least one of a gyroscope, anaccelerometer, a magnetometer and a pressure sensitive switch.
 8. Thesystem according to claim 1, wherein the telemetry data comprises one ormore from the list consisting of: controller position data; controllerorientation data; controller motion data; and data indicative of aconfiguration of one or more pressure sensitive switches of thecontroller.
 9. The system according to claim 1, wherein the transmitteris configured to periodically transmit the telemetry data and the userprofile selection unit is configured to periodically select the userprofile from the one or more user profiles in dependence upon a periodicanalysis of the degree of match between the transmitted telemetry dataand the data of each respective user profile.
 10. The system accordingto claim 1, wherein the user profile selection unit is configured toinput the transmitted telemetry data and the data of each respectiveuser profile to a model, and wherein the model is trained to determineone or more of the properties of the transmitted telemetry data and tocompare one or more of the properties of the transmitted telemetry datawith one or more corresponding properties of the data of each respectiveuser profile to determine the degree of match between the transmittedtelemetry data and the data of each respective user profile.
 11. Thesystem according to claim 1, comprising: a user profile analysis unitconfigured to determine, for the data indicative of one or morecharacteristic interactions by each user with the controller, aplurality of properties for each respective user profile; and acorrelation unit configured to select one or more properties from theplurality of properties to produce a set of properties for each userprofile, wherein each set of properties uniquely identifies thecorresponding user profile with respect to the plurality of userprofiles, wherein the correlation unit is configured to store the modeldefining a set of properties for each user profile, each set ofproperties comprising one or more properties each having an associatedvalue.
 12. A method of identifying a user of a controller, comprising:detecting, by one or more sensors of a controller, interaction with thecontroller by the user; transmitting telemetry data based on outputs ofone or more of the sensors; obtaining user profile data for one or moreuser profiles, wherein each user profile corresponds to a respectiveuser and the user profile data for a user profile comprises datacharacteristic of an interaction by the user with the controller;selecting a user profile from the one or more user profiles independence upon a degree of match between one or more properties of thetransmitted telemetry data and the data of each respective user profile;and modifying an output responsive to the selection, wherein thecontroller comprises an electric motor configured to generate a forcefor providing a haptic signal to the user of the controller, and theselecting includes selecting the user profile from the one or more userprofiles in dependence upon one or more of the properties of thetelemetry data transmitted by the transmitter within a predeterminedperiod of time following the provision of the haptic signal to the userof the controller.
 13. The method according to claim 12, comprising:obtaining user profile data for a plurality of user profiles, whereineach user profile corresponds to a respective user and the user profiledata for a user profile comprises data indicative of one or morecharacteristic interactions by the user with the controller; determiningfor the data indicative of one or more characteristic interactions byeach user with the controller, a plurality of properties for eachrespective user profile; selecting one or more properties from theplurality of properties to produce a set of properties for each userprofile, wherein each set of properties uniquely identifies thecorresponding user profile with respect to the plurality of userprofiles; and storing a model defining a set of properties for each userprofile, each set of properties comprising one or more properties eachhaving an associated value.
 14. A non-transitory, computer-readablestorage medium containing computer software which, when executed by acomputer, causes the computer to identify a user of a controller, bycarrying out actions, comprising: detecting, by one or more sensors of acontroller, interaction with the controller by the user; transmittingtelemetry data based on outputs of one or more of the sensors; obtaininguser profile data for one or more user profiles, wherein each userprofile corresponds to a respective user and the user profile data for auser profile comprises data characteristic of an interaction by the userwith the controller; selecting a user profile from the one or more userprofiles in dependence upon a degree of match between one or moreproperties of the transmitted telemetry data and the data of eachrespective user profile; and modifying an output responsive to theselection, wherein the controller comprises an electric motor configuredto generate a force for providing a haptic signal to the user of thecontroller, and the selecting includes selecting the user profile fromthe one or more user profiles in dependence upon one or more of theproperties of the telemetry data transmitted by the transmitter within apredetermined period of time following the provision of the hapticsignal to the user of the controller.